import { request } from './client'
import type { TodoList, Todo, CreateTodoRequest, UpdateTodoRequest } from '@/types/todo'

// 待办事项列表相关API
export const getTodoLists = () => {
  return request.get<{ todoLists: TodoList[] }>('/todo-lists')
}

export const createTodoList = (name: string) => {
  return request.post<{ todoList: TodoList }>('/todo-lists', { name })
}

export const updateTodoList = (id: number, name: string) => {
  return request.put<{ todoList: TodoList }>(`/todo-lists/${id}`, { name })
}

export const deleteTodoList = (id: number) => {
  return request.delete(`/todo-lists/${id}`)
}

// 待办事项相关API
export const getTodos = (params?: {
  listId?: number
  completed?: boolean
  priority?: number
  limit?: number
}) => {
  return request.get<{ todos: Todo[] }>('/todos', params)
}

export const getTodosByList = (listId: number) => {
  return request.get<{ todos: Todo[] }>(`/todo-lists/${listId}/todos`)
}

export const createTodo = (data: CreateTodoRequest) => {
  return request.post<{ todo: Todo }>('/todos', data)
}

export const updateTodo = (id: number, data: UpdateTodoRequest) => {
  return request.put<{ todo: Todo }>(`/todos/${id}`, data)
}

export const deleteTodo = (id: number) => {
  return request.delete(`/todos/${id}`)
}

// 快速切换完成状态
export const toggleTodo = (id: number, completed: boolean) => {
  return request.put<{ todo: Todo }>(`/todos/${id}`, { completed })
}